package com.kuangstudy.handler;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author zhangfushuai
 * @description 拦截器
 * @since 2022/4/18 10:21
 * 参数 null
 * @return
 **/
@Slf4j
public class LogInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.info("log---111111111111111111------>preHandle 执行进来了");
        // 如果为false,直接阻断，不会处理任何动作，动作必须要你来决定(
        // 1：你可以选择跳转页面，（几乎用不到）
        // 2：你也重定向到你指定路由（常用做法）
        // 3：你也可以用流输出流程（常用做法）
        // 如果拦截器执行完毕，返回true,代表的是：执行完毕逻辑了，去处理你springmvc的路由方法
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        log.info("log---33333333333333333------>postHandle 执行进来了");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        log.info("log---44444444444444444------>afterCompletion 执行进来了");
    }
}
